home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / fly.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-24  |  3.7 KB  |  175 lines

  1. 10  '*****************
  2. 20  '**     FLY     **
  3. 30  '*****************
  4. 40  '
  5. 50  CLEAR
  6. 60  GOSUB 1730
  7. 70  SCREEN 1
  8. 80  KEY OFF
  9. 90  CLS
  10. 100  COLOR 0,0
  11. 110  OPTION BASE 1
  12. 120  DEFINT X,Y
  13. 130  DIM FLY0(21),FLY1(21),FLY2(21)
  14. 140  DIM SWAT(714)
  15. 150  DIM X(3),Y(3)
  16. 160  DELAY=3000
  17. 170  '
  18. 180  ' Build the fly images
  19. 190  BODY$="c1u5be1d6r1u6bf1d5"
  20. 200  URWING$="c3bu3br1e3r1g3r1e3"
  21. 210  ULWING$="bg3bl7h3l1f3l1h3"
  22. 220  DRWING$="c3br6h3l1f3l1h3"
  23. 230  DLWING$="bl5g3l1e3l1g3"
  24. 240  DRAW BODY$+URWING$+ULWING$
  25. 250  DRAW "bd20br6"
  26. 260  DRAW BODY$+DRWING$+DLWING$
  27. 270  GET (131,91)-(152,103),FLY0
  28. 280  GET (151,91)-(172,103),FLY1
  29. 290  GET (151,105)-(172,117),FLY2
  30. 300  '
  31. 310  ' Build the swatter image
  32. 320  CLS
  33. 330  LINE (0,50)-(75,135),3,BF
  34. 340  FOR X = 5 TO 65 STEP 10
  35. 350  FOR Y = 55 TO 125 STEP 10
  36. 360  LINE (X,Y)-(X+5,Y+5),0,BF
  37. 370  NEXT Y,X
  38. 380  FOR Y = 106 TO 135
  39. 390  IF Y < 111 THEN CLR=3 ELSE CLR=0
  40. 400  DRAW "c=clr; bm0,=y; m+25,25 m+25,0 m+25,-25"
  41. 410  NEXT Y
  42. 420  LINE (30,136)-(45,199),1,BF
  43. 430  GET (0,50)-(75,199),SWAT
  44. 440  '
  45. 450  ' Draw the screen border
  46. 460  CLS
  47. 470  LINE(0,0)-(319,199),2,BF
  48. 480  LINE(9,9)-(310,190),3,BF
  49. 490  '
  50. 500  ' Next fly appears
  51. 510  LINE(15,15)-(304,184),0,BF
  52. 520  FOR I = 1 TO 7+5*RND
  53. 530  FLY=INT(3*RND+1)
  54. 540  BUZZ=0
  55. 550  SOUND 47,0
  56. 560  SOUND 63+7*RND,999
  57. 570  WHILE BUZZ < DELAY
  58. 580  PUT(74*FLY,67),FLY1,PSET
  59. 590  PUT(74*FLY,67),FLY2,PSET
  60. 600  BUZZ=BUZZ+99
  61. 610  WEND
  62. 620  SOUND 47,0
  63. 630  PUT(74*FLY,67),FLY0,PSET
  64. 640  NEXT I
  65. 650  '
  66. 660  ' Swatters schwaapf onto screen
  67. 670  FOR SWIPE = 1 TO 3
  68. 680  SOUND 999,1
  69. 690  PUT (87*SWIPE-51,35),SWAT
  70. 700  NEXT SWIPE
  71. 710  '
  72. 720  ' How well did you follow the fly?
  73. 730  K$ = INKEY$
  74. 740  IF K$ <> "" THEN 730
  75. 750  LOCATE 3,7
  76. 760  PRINT "Check which swatter (1,2,3) ?
  77. 770  K$=INKEY$
  78. 780  IF K$ = "" THEN 770
  79. 790  IF K$<>"1" AND K$<>"2" AND K$<>"3" THEN 770
  80. 800  GUESS=VAL(K$)
  81. 810  LINE (87*GUESS-51,35)-(87*GUESS+24,184),0,BF
  82. 820  IF GUESS <> FLY THEN 1260
  83. 830  '
  84. 840  ' Another one bytes the dust
  85. 850  DELAY=0.737*DELAY
  86. 860  GOSUB 1490
  87. 870  LOCATE 3,7
  88. 880  PRINT "GOT IT !!!";TAB(37);
  89. 890  SPOT=74*GUESS+9
  90. 900  FOR I = 0 TO 40
  91. 910  FREQ=99*SIN(2.1-I/17)^3+678
  92. 920  SOUND 99,0
  93. 930  SOUND FREQ,2
  94. 940  IF I MOD 3 = 0 THEN DRAW "bm=spot;,67"
  95. 950  CLR=INT(3*RND+1)
  96. 960  DX=INT(9*RND-4)
  97. 970  DY=INT(9*RND-4)
  98. 980  DRAW "c=clr; m+=dx;,=dy;"
  99. 990  NEXT I
  100. 1000  LINE (15,15)-(304,184),0,BF
  101. 1010  IF RANK=99 THEN 1620
  102. 1020  IF RANK <> 11 THEN 1100
  103. 1030  '
  104. 1040  ' You made it past the first level of proficiency
  105. 1050  RANK=1
  106. 1060  LINE (15,15)-(304,184),0,BF
  107. 1070  LOCATE 12,4
  108. 1080  PRINT "YOU JUST MADE 'SENIOR DE-BUGGER'!!!"
  109. 1090  PLAY"MF O3 T200 L5 MS cde.cffcd.cde.cffcd..."
  110. 1100  IF RANK <> 12 THEN 1180
  111. 1110  '
  112. 1120  ' You made it past the second level of proficiency
  113. 1130  RANK=2
  114. 1140  LINE (15,15)-(304,184),0,BF
  115. 1150  LOCATE 12,4
  116. 1160  PRINT "WOW! What a professional! Buzz on!";
  117. 1170  PLAY"MF O3 T200 L5 MS ccg.ccg.efgedccffcd..."
  118. 1180  LINE (15,15)-(304,184),0,BF
  119. 1190  LOCATE 12,4
  120. 1200  PRINT "Oh oh! Here comes a faster fly ...";
  121. 1210  FOR I = 1 TO 999
  122. 1220  NEXT I
  123. 1230  GOTO 510
  124. 1240  '
  125. 1250  ' missed it
  126. 1260  DELAY=1.47*DELAY
  127. 1270  IF DELAY > 3000 THEN DELAY=3000
  128. 1280  GOSUB 1490
  129. 1290  LINE (87*FLY-51,35)-(87*FLY+24,184),0,BF
  130. 1300  LOCATE 3,7
  131. 1310  PRINT "Whoops, it got away.";TAB(37);
  132. 1320  SOUND 57,47
  133. 1330  FOR I = 1 TO 100
  134. 1340  PUT (74*FLY,67),FLY1,PSET
  135. 1350  PUT (74*FLY,67),FLY2,PSET
  136. 1360  NEXT I
  137. 1370  LINE (15,15)-(304,184),0,BF
  138. 1380  LOCATE 12,7
  139. 1390  IF DELAY = 3000 THEN MISS$="Here comes another one ..."
  140. 1400  IF DELAY < 3000 THEN MISS$="Here comes a slower fly ..."
  141. 1410  PRINT MISS$;
  142. 1420  IF SPEED < 9000 THEN RANK=1
  143. 1430  IF SPEED < 8000 THEN RANK=0
  144. 1440  FOR I = 1 TO 999
  145. 1450  NEXT I
  146. 1460  GOTO 510
  147. 1470  '
  148. 1480  ' Compute score and rank
  149. 1490  SPEED=(3000-DELAY)*10/3
  150. 1500  IF SPEED < 0 THEN SPEED=0
  151. 1510  LOCATE 25,5
  152. 1520  PRINT USING "SPEED = ####";SPEED;
  153. 1530  IF SPEED > RECORD THEN RECORD=SPEED
  154. 1540  LOCATE 25,22
  155. 1550  PRINT USING "RECORD = ####";RECORD;
  156. 1560  IF SPEED > 8000 AND RANK < 1 THEN RANK=11
  157. 1570  IF SPEED > 9000 AND RANK < 2 THEN RANK=12
  158. 1580  IF SPEED > 9999 THEN RANK=99
  159. 1590  RETURN
  160. 1600  '
  161. 1610  ' best score possible!
  162. 1620  LOCATE 10,5
  163. 1630  PRINT "YOU DID IT!!! NO BUGS LEFT!!!"
  164. 1640  LOCATE 12,5
  165. 1650  PRINT "Welcome to the S.W.A.T. team !"
  166. 1660  PLAY "T169 L9 MS abcdefgacegecacgfedfdfdgdccedabbcaegfc"
  167. 1670  BGD = INT(RND * 6)
  168. 1680  PLT = INT(RND * 2)
  169. 1690  COLOR BGD,PLT
  170. 1700  GOTO 1660
  171. 1710  '
  172. 1720  ' Subroutine, reset random number sequence
  173. 1730  RANDOMIZE VAL(MID$(TIME$,4,2) + RIGHT$(TIME$,2))
  174. 1740  RETURN
  175.